package a_singleinstance;

/**
 *  通过静态内部类实现单例
 * 解释：实例是由内部类创建的，由于jvm在加载类的过程中，不会加载静态内部类，只有内部类的属性或者方法被调用的时候才会加载，并初始化其静态属性，
 * 静态属性被static修饰，保证只会实例化一次。
 *
 *
 *
 */


public class Singleton {

    //1. 私有构造方法
    private Singleton(){}

    private static class singletonHolder{
        private static final Singleton singleInstance = new Singleton();
    }

    //对外提供方法获取该对象
    public static Singleton getInstance(){
        return singletonHolder.singleInstance;
    }
}
